#include<bits/stdc++.h>
using namespace std;
int n,m,a[100010],b[100010],c[100010],K,T,x[4],qu[100010],a1,a2,a3,a4,a5,a6,res;
string o,p,q;
int cnt(int a)
{
    if(a == 1) return 0;
    if(a == 2) return 1;
    if(a >= 3 && a <= 4) return 2;
    if(a >= 5 && a <= 8) return 3;
    return -1;
}
int main()
{
    freopen("arena.in","r",stdin);
    freopen("arena.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>n>>m;
    for(int i = 1;i <= n;i++) cin>>a[i];
    for(int i = 1;i <= m;i++) cin>>c[i];
    K = cnt(n);
    qu[1] = 1;
    if(K >= 3) cin>>o;
    if(K >= 2) cin>>p;
    if(K >= 1) cin>>q;
    cin>>T;
    while(T--)
    {
        for(int i = 0;i < 4;i++) cin>>x[i];
        for(int i = 1;i <= n;i++) b[i] = a[i] ^ x[i % 4];
        if(K >= 1)
        {
            if((q[0] == '0' && b[1] >= 1) || (q[0] == '1' && b[2] < 1)) qu[2] = 1;
            else qu[2] = 2;
            //2
            if(K >= 2)
            {
                if((p[0] == '0' && b[1] >= 1) || (p[0] == '1' && b[2] < 1)) a1 = 1;
                else a1 = 2;
                if(p[1] == '0')
                {
                    if(b[3] >= 1) a2 = 3;
                    else a2 = 4;
                }
                else a2 = 7;
                if(q[0] == '0')
                {
                    if(b[a1] >= 2) qu[3] = a1;
                    else qu[3] = a2;
                }
                else
                {
                    if(a2 == 3)
                    {
                        if(b[3] >= 2) qu[3] = 3;
                        else qu[3] = a1;
                    }
                    else qu[3] = a1 + a2;
                }
                //3
                if((p[0] == '0' && b[1] >= 1) || (p[0] == '1' && b[2] < 1)) a1 = 1;
                else a1 = 2;
                if((p[1] == '0' && b[3] >= 1) || (p[1] == '1' && b[4] < 1)) a2 = 3;
                else a2 = 4;
                if((q[0] == '0' && b[a1] >= 2) || (q[0] == '1' && b[a2] < 2)) qu[4] = a1;
                else qu[4] = a2;
                //4
                if(K >= 3)
                {
                    if((o[0] == '0' && b[1] >= 1) || (o[0] == '1' && b[2] < 1)) a1 = 1;
                    else a1 = 2;
                    if((o[1] == '0' && b[3] >= 1) || (o[1] == '1' && b[4] < 1)) a2 = 3;
                    else a2 = 4;
                    if(o[2] == '0')
                    {
                        if(b[5] >= 1) a3 = 5;
                        else a3 = 6;
                    }
                    else a3 = 11;
                    a4 = 15;
                    if((p[0] == '0' && b[a1] >= 2) || (p[0] == '1' && b[a2] < 2)) a5 = a1;
                    else a5 = a2;
                    if(p[1] == '0')
                    {
                        if(a3 == 5)
                        {
                            if(b[5] >= 2) a6 = 5;
                            else a6 = 15;
                        }
                        else a6 = a3 + 15;
                    }
                    else a6 = a3 + 15;
                    if(q[0] == '0')
                    {
                        if(b[a5] >= 3) qu[5] = a5;
                        else qu[5] = a6;
                    }
                    else
                    {
                        if(a6 == 5)
                        {
                            if(b[5] >= 3) qu[5] = 5;
                            else qu[5] = a5;
                        }
                        else qu[5] = a5 + a6;
                    }
                    //5
                    if((o[0] == '0' && b[1] >= 1) || (o[0] == '1' && b[2] < 1)) a1 = 1;
                    else a1 = 2;
                    if((o[1] == '0' && b[3] >= 1) || (o[1] == '1' && b[4] < 1)) a2 = 3;
                    else a2 = 4;
                    if((o[2] == '0' && b[5] >= 1) || (o[2] == '1' && b[6] < 1)) a3 = 5;
                    else a3 = 6;
                    a4 = 15;
                    if((p[0] == '0' && b[a1] >= 2) || (p[0] == '1' && b[a2] < 2)) a5 = a1;
                    else a5 = a2;
                    if(p[1] == '0')
                    {
                        if(b[a3] >= 2) a6 = a3;
                        else a6 = 15;
                    }
                    else a6 = a3 + 15;
                    if(q[0] == '0')
                    {
                        if(b[a5] >= 3) qu[6] = a5;
                        else qu[6] = a6;
                    }
                    else
                    {
                        if(a6 == 5 || a6 == 6)
                        {
                            if(b[a6] >= 3) qu[6] = a6;
                            else qu[6] = a5;
                        }
                        else qu[6] = a5 + a6;
                    }
                    //6
                    if((o[0] == '0' && b[1] >= 1) || (o[0] == '1' && b[2] < 1)) a1 = 1;
                    else a1 = 2;
                    if((o[1] == '0' && b[3] >= 1) || (o[1] == '1' && b[4] < 1)) a2 = 3;
                    else a2 = 4;
                    if((o[2] == '0' && b[5] >= 1) || (o[2] == '1' && b[6] < 1)) a3 = 5;
                    else a3 = 6;
                    if(o[3] == '0')
                    {
                        if(b[7] >= 1) a4 = 7;
                        else a4 = 8;
                    }
                    else a4 = 15;
                    if((p[0] == '0' && b[a1] >= 2) || (p[0] == '1' && b[a2] < 2)) a5 = a1;
                    else a5 = a2;
                    if(p[1] == '0')
                    {
                        if(b[a3] >= 2) a6 = a3;
                        else a6 = a4;
                    }
                    else
                    {
                        if(a4 == 7)
                        {
                            if(b[7] >= 2) a6 = 7;
                            else a6 = a3;
                        }
                        else a6 = a3 + a4;
                    }
                    if(q[0] == '0')
                    {
                        if(b[a5] >= 3) qu[7] = a5;
                        else qu[7] = a6;
                    }
                    else
                    {
                        if(a6 >= 5 && a6 <= 7)
                        {
                            if(b[a6] >= 3) qu[7] = a6;
                            else qu[7] = a5;
                        }
                        else qu[7] = a5 + a6;
                    }
                    //7
                    if((o[0] == '0' && b[1] >= 1) || (o[0] == '1' && b[2] < 1)) a1 = 1;
                    else a1 = 2;
                    if((o[1] == '0' && b[3] >= 1) || (o[1] == '1' && b[4] < 1)) a2 = 3;
                    else a2 = 4;
                    if((o[2] == '0' && b[5] >= 1) || (o[2] == '1' && b[6] < 1)) a3 = 5;
                    else a3 = 6;
                    if((o[3] == '0' && b[7] >= 1) || (o[3] == '1' && b[8] < 1)) a4 = 7;
                    else a4 = 8;
                    if((p[0] == '0' && b[a1] >= 2) || (p[0] == '1' && b[a2] < 2)) a5 = a1;
                    else a5 = a2;
                    if((p[1] == '0' && b[a3] >= 2) || (p[1] == '1' && b[a4] < 2)) a6 = a3;
                    else a6 = a4;
                    if((q[0] == '0' && b[a5] >= 3) || (q[0] == '1' && b[a6] < 3)) qu[8] = a5;
                    else qu[8] = a6;
                    //8
                }
            }
        }
        for(int i = 1;i <= n;i++)
        {
            if(i == 1) res = qu[c[i]];
            else res = res ^ (i * qu[c[i]]);
        }
        cout<<res<<endl;
    }
    return 0;
}
